import store from '@/store'

/**
 * @param {Array} value
 * @returns {Boolean}
 * @example see @/views/permission/directive.vue
 */
 export default {
  inserted(el, binding, vnode) {
    const { value } = binding
    const roles = store.getters && store.getters.permission
    if (value && value instanceof Array && value.length > 0) {
      const permissionRoles = value
      const hasPermission = roles.some(role => {
        return permissionRoles.includes(role)
      })

      if (!hasPermission) {
        el.parentNode && el.parentNode.removeChild(el)
      }
    } else {
      // throw new Error(`使用方式： v-permission="['admin','editor']"`)
    }
  },
  authUtils(permissionRoles) {
    const roles = store.getters && store.getters.permission
    const hasPermission = roles.some(role => {
      return permissionRoles.includes(role)
    }) 
    return hasPermission;
  }
}


// export default function checkPermission(value) {
//   if (value && value instanceof Array && value.length > 0) {
//     const roles = store.getters && store.getters.roles
//     const permissionRoles = value

//     const hasPermission = roles.some(role => {
//       return permissionRoles.includes(role)
//     })

//     if (!hasPermission) {
//       return false
//     }
//     return true
//   } else {
//     console.error(`need roles! Like v-permission="['admin','editor']"`)
//     return false
//   }
// }
